Skip to main content
  1. Writing/

Experimenting With Linux As A Daily Driver

·2492 words

While the year of Linux on the desktop globally might be a pipe dream (at least for the foreseeable future) due to many problems that would prevent mass adoption, I thought that it’s worth for me to at least try to use it as a daily driver and build my own opinion about the operating system. And no, this is not a clickbait title - I am actually going to try using Linux as a tool every day beyond just fiddling with it every once in a while, like I have before. I am talking about using it for coding, writing, household stuff, entertainment, and all the fun things you would expect a nerd like me to be doing on a computer. I love technology and I like to experiment with gadgets and applications, especially when those push me out of my comfort zone, and nothing will push me out of my comfort zone faster than learning to write /etc/fstab configuration to mount my network drives instead of relying on a “Connect Server” UI. This is not, by any means, a declaration that I am switching to Linux - not at all, I will still use quite a bit of Windows and macOS in my day-to-day, but I will give Linux a good amount of test driving and will try to learn the ins and outs to have a deeply informed opinion about it.

I’ve been a macOS and Windows kind of guy for years, jumping between them as needed. I love the simplicity and cleanliness of macOS and I like the stability and power of the Windows platform. I’d go as far as say that in general I have no particular affinity for one platform - being a maker, I use what gets the job done in the best way possible for the scenario that I have in mind. All this is a long way of saying that Linux has been eluding me because I saw it as half-baked for a lot of the workflows I care about. I talked about my “bootstrapping Linux for personal use” in one of my previous blog post and if you read through it, my frustration with the experience was palpable, not the least because of the fact that the community around the OS seems so heavily focused on the hardcore techie, that a lot of usability issues seem to be brushed off as some kind of nuisance that only hippies and spoiled Mac users want.

But you know what, I noodled on it for a bit and decided that I want to experience the system myself, warts and all - not on a surface level, but as a legit, full-time user. Stuff I work on runs on Linux anyway, so I will have a chance to test it there too. What happens if I actually try to solve the problems myself - how long will it take me? What would happen if I overcome the dread of dealing with kernel updates and see what I can actually learn from it? Basically, be the opposite of the “suck it up if you don’t like it” crowd and actually document my experiences while being immersed in the ecosystem.

The dragons along the way #

So, here starts my experiment with Linux. I chose Debian to be the distribution to go with mainly due to its stability and community-oriented focus. I am sure there are millions of opinions that if I picked something like Ubuntu, pop_OS, Arch, Fedora, or one of the other distributions I’d have a better experience, but all that would do is give me different papercuts. Anyway, It’s been a… rough start. I am not discouraged, though. For what it’s worth, this blog post is written from this very Linux installation and I managed to paint myself out of the corner quite a few times already.

Here are some interesting problems that I ran into right away, that are worth documenting for posterity. I consider myself a power user that can tinker with configs and settings until things work, but some of these puzzled me and I couldn’t figure out an obvious solution.

Keyboard detection in GRUB #

When the OS was installed, it automatically provisioned the GRUB bootloader. When the machine boots, I am prompted to select which OS I want to boot into - Debian is the only one installed on this particular box, so the choice should be obvious. However, I am instead prompted to select whether I want to boot into recovery mode or the OS itself. Which I can understand - giving customers this option is great, but what surprised me is that I couldn’t really select any of those. My keyboard just wouldn’t work in the GRUB menu. Maybe it’s the Keychron board doing something funky, but no arrow keys would work, the ENTER key did nothing, and no matter what BIOS settings I would apply - I couldn’t select the OS to boot into.

The solution here, at least temporarily, was using a WASD keyboard (thank you Jeff Atwood) that I had to unplug from another box and plug into the Linux machine. I decided that to work around the problem I likely need to auto-select Debian as the OS to boot, and to do that I modified /etc/default/grub to include a timeout:

GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true

For whatever reason, this still results in five seconds of wait time before the OS boots and I get prompted for the disk unlock keys. Funnily enough, at that point I can use the Keychron keyboard just fine - I simply needed to get through the GRUB selection.

Default user not able to run sudo #

I think this is a-OK given the Linux permission model, but it still felt odd that I just wiped a computer to install Debian, and then I can’t even update the OS with sudo apt update and sudo apt upgrade without getting a scary warning about me being reported for using sudo (I know they’re getting rid of that message, but that’s orthogonal to the problem).

Nothing a little terminal fiddling can’t solve:

su -
usermod -aG sudo <my_user_account>

After rebooting the machine I can finally update the installed packages.

“No reboots” is a lie #

I recall a fairly recent conversation where an individual was trying to assure me that “Unlike Windows, on Linux you don’t need to reboot,” and I can confidently say that this is factually not true. I had to reboot my Linux computer just as often when I was setting it up as Windows. User account permissions? Reboot (logging out and back in did nothing). Install graphics drivers? Reboot. Update the Steam configuration? Reboot. Install GNOME Pomodoro? Reboot, or otherwise the app screen will freeze, and so will the app a minute later. I am not kidding - this is a very much real solution to getting the app to work.

Getting two monitors to work is confusing #

I have two DELL UltraSharp 43" monitors. After installing the OS, I also updated the AMD drivers per the official guidelines. After reboot, I get a blank screen on one display, and information on the other. That seemed odd, especially since it seemed like one display was extending the other - I could move my mouse cursor across. The display settings in the Settings view was showing the second monitor as detected, but alas - no image. Reinstalling AMD drivers did nothing. Reverting to prior driver version did nothing either.

The solution? Unplug the second screen, reboot the OS, and once the system is fully booted - plug it back in. After that there were no issues with the second screen being detected after reboots. What caused this? No idea.

Software installation is a bit of a mess #

Flatpak, Snap store, apt, downloading a .tar.bz2 archive, copying the application to /opt/<app_name> and creating symbolic links in /usr/bin, using dpkg -i <some_package.deb> - there is no rhyme or reason to which app you will get in what format.

Even more interesting is that you could install most stuff through apt, but I got some really old versions of packages. Maybe it’s because it’s Debian and in the pursuit of stability it only creates a new release every few years, but it was surprising nonetheless to run into hugo version 0.88 when the current one is 0.112, and I can tell you that hugo doesn’t backport changes, contrary to the general package promise.

To get around this, I ended up adding some third-party vendor apt repositories (e.g., from Sublime) and install the latest packages through them. Or download binaries directly from the website, depending on the file format they had.

Windows software through Wine #

There are a few tools that I was really curious to see working through the Wine compatibility layer. A few apps came to mind, 1Password and Scrivener being top of the list.

Image of 1Password and Scrivener running side-by-side on Linux

They work mostly OK, although 1Password is somewhat sluggish. With Scrivener I ran into a bit of a hilarious problem. First, starting the app itself would just hang indefinitely while attempting to load fonts. A quick glance over Wine AppDB pointed me in the direction of the missing Windows Speech API package, so I installed it with the help of winetricks:

winetricks sapi

However, this wasn’t the end. If you just use the trial version, you can start right away. If you try to activate it with a license, though, an error will consistently pop up on every attempt. Despite the fact that the application is already running, you still need to install .NET Framework 4.8 (thankfully winetricks handles that too):

winetricks dotnet48

After that, the issue was magically resolved.

1Password gave me grief while trying to download rich icons - if for whatever reason it hits a URL that returns a response that is not HTTP 200, it will just hang indefinitely, with the only solution being restarting the app. The same issue doesn’t surface on Windows, where bad responses are skipped.

Games #

I am not that big of a PC gamer, so this hasn’t really been a major determining factor when I decided to experiment with Linux (I mostly play on the Switch, Steam Deck, and Xbox). Nonetheless, I do enjoy my Steam Deck console and thought that I would experiment with Steam on Linux since that’s what the handheld runs in the first place. Some games from Steam work, others don’t. I mostly care about the classic games, like SimCity 3000 Unlimited, Terraria (has a Linux version, by the way), Age of Empires 2, and Grand Theft Auto: San Andreas, and they work a-OK as well. Most old games from GOG.com do work OK too.

SimCity 3000 Unlimited works quite good under Wine, actually; however I needed to enable virtual desktop emulation to get the game to actually show me the contents of the game screen (otherwise it’s just black.)

Virtual desktop emulation with Wine on Linux

After that, the game started just fine and was very much playable.

SimCity 3000 Unlimited running through Wine on Linux

To get Grand Theft Auto: San Andreas to work, I had to fiddle with launch options in Steam, since I have, well, the Steam edition (by the way, not the Definition Edition of the game - I still have the OG release). Proton generally works well, but I also had to try and get to the right version of Proton to even get it to run past a black screen - I think I ended up with a release that was three or four versions ago that actually allowed me to run the game in a somewhat usable state.

Strange performance degradation #

Doing disk operations, like formatting, even if it’s not a system drive, somehow affects the performance of YouTube videos, that become very laggy. Never had that on Windows or macOS. The moment formatting completes, things go back to normal.

Broken camera app and settings #

Cheese, the built-in camera app, is completely broken - as in, it shows that my camera could not be displayed. I have a Logitech C920, arguably a very common device, yet it doesn’t work properly.

Broken Cheese application, saying &ldquo;There was an error playing video from the webcam&rdquo;

The settings seemed to be standard for what I expected from the webcam:

Cheese settings showing a desired 1920x1080 resolution

Alas, no luck - the image wouldn’t show no matter what I tried. Installing utilities like guvcview showed me that I could get to the image, but only if I set the resolution to 800x600 instead of the per-spec 1920x1080. Go figure - I am not sure what other tweaks I can do here to get it to work at the same performance as Windows and macOS.

Guvcview showing the Logitech camera at 800x600 resolution

The good news is that I can still use OBS Studio with a CamLink 4K to get the video stream from my DSLR that comes at full resolution.

Office apps #

LibreOffice is nice, but when I opened the budget spreadsheet I’ve been maintaining for years and saved it, it broke on literally every computer that is not my Linux box - the graphs were out of whack, VBA macros were now throwing errors, and the formatting in certain groups was off. Maybe if the file was saved in the native LibreOffice format things would’ve been different, but it seemed like the tool was confident enough that it can maintain my macro-powered Excel spreadsheet as-is. Apparently not. Thankfully I keep regular backups, so restoring was a breeze, but it was a rather unpleasant surprise.

To make things better, trying to diagnose some of the issues with VBA led me to this gem of a community response on one quite popular forum:

Cheese settings showing a desired 1920x1080 resolution

Who said anything about the Linux and Linux-adjacent communities not being welcoming to newcomers?

The nice things #

While I ran into quite a few issues starting up, I also ended up in a pretty decent place with the OS and I am getting used to some of the conventions and apps that are available for it. I got Spotify to run smoothly (thanks to a native Linux version of the client), Krita works well as a tool for digital drawing with my Wacom tablet working out-of-the-box with no extra Wacom-sponsored software, Sublime Text works great as a text editor and Sublime Merge as a Git client, my printer and scanner ran great out-of-the-box (the biggest surprise, to be honest), Eclipse is going to be my IDE of choice for C/C++ code, I can use Builder for Rust-powered GNOME development, Python works nicely with no extra fuss, and most of the productivity apps I like are available on Linux.

There is going to be a bit of a learning curve, but I am ready to roll up my sleeves and learn about something that I haven’t really had a chance to spend time on. Hopefully I can add Linux to my “OS Power User” badge collection.

Image showing the Debian desktop with applications running

And all things considered, this will also give me a chance to revisit a book my dad gifted to me a decade ago - put that encyclopedia to good use.

A book named &ldquo;Unix for professionals&rdquo;